Automatic Streamization in GCC

نویسندگان

  • Antoniu Pop
  • Sebastian Pop
  • Jan Sjödin
چکیده

Multi-cores and multi-processors became ubiquitous during the last few years, and the trend is to increase the number of simple, power-efficient, and slower cores per chip. One of the results is that the performance of single-threaded applications did not significantly improve, or even declined, on new processors, which heightened the interest in compiler automatic parallelization techniques. Our objective is to develop a framework in GCC to transform loops into pipelines of concurrent tasks using streams to communicate and synchronize. This transformation can either rely on user hints (pragmas) or on static analysis of control and data dependences. Our focus is to fully automate this transformation, which requires an integration with the Graphite polyhedral loop optimization framework and will lead to the development of runtime optimizations based on this polyhedral representation. This approach is complementary with the existing parallelization passes. This paper presents the steamization technique, the optimizations it enables, the interaction with other optimizations, and the necessary extensions to Graphite/PCP (polyhedral compilation package) for its integration.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Improving GNU Compiler Collection Infrastructure for Streamization

GNU Compiler Collection (GCC) needs a strategy to support future multicore architectures, which will probably include heterogeneous accelerator-like designs with explicit management of scratchpad memories. Some have further restrictions; for example, SIMD has limited synchronization capabilities. Some platforms will probably offer hardware support for streaming, transactions, and speculation. T...

متن کامل

Automatic Streamization of Image Processing Applications

New many-core architectures such as the Kalray MPPA-256 provide energy-efficiency and high performance for embedded systems. However, to take advantage of these opportunities, careful manual optimizations are required. We investigate the automatic streamization of image processing applications, implemented in C on top of a dedicated API, onto this target accessed through the ΣC dataflow languag...

متن کامل

OpenMP and automatic parallelization in GCC

This paper describes the design and implementation of the OpenMP specification v2.5 in GCC. The implementation supports all the languages specified in the standard (C, C++ and Fortran), and it is generally available on any platform that supports POSIX threads. Emphasis is placed on the internal architecture and, in particular, the intermediate representation, which could be used in the implemen...

متن کامل

Autovectorization in GCC

Vectorization is an optimization technique that has traditionally targeted vector processors. The importance of this optimization has increased in recent years with the introduction of SIMD (single instruction multiple data) extensions to general purpose processors, and with the growing significance of applications that can benefit from this functionality. With the adoption of the new Tree SSA ...

متن کامل

Foreign Direct Investment and Economic Growth: Evidence from Iran and GCC

Abstract F DI can create employment and reduce poverty, increase the host country’s export capacity causing the developing country to increase its foreign exchange earnings. The aim of this study is to investigate whether FDI affect economic growth in GCC countries over the period 1980-2014 using ARDL approaches. The empirical results show that the FDI is one of the major drivers of e...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2009